package com.eastfair.imaster.dto;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.eastfair.core.base.entity.Entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.Data;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;

/**
 * <p>
 * 实体类
 * 展品表
 * </p>
 *
 * @author ligang
 * @since 2021-12-03
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
@Builder
@ApiModel(value = "ExhibitorProductSaveDTO", description = "展品表")
public class ExhibitorProductSaveDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 项目ID
     */
    @ApiModelProperty(value = "项目ID")
    @NotNull(message = "请填写项目ID")
    private Long projectId;
    /**
     * 当前发布到的展会ID
     */
    @ApiModelProperty(value = "当前发布到的展会ID")
    private Long exhibitionId;
    /**
     * 公司ID
     */
    @ApiModelProperty(value = "公司ID")
    private Long companyId;
    /**
     * 展商ID
     */
    @ApiModelProperty(value = "展商ID")
    private Long exhibitorId;
    /**
     * 产品ID
     */
    @ApiModelProperty(value = "产品ID")
    private Long productId;
    /**
     * 产品名称
     */
    @ApiModelProperty(value = "产品名称")
    @Size(max = 500, message = "产品名称长度不能超过500")
    private String name;
    /**
     * 产品英文名称
     */
    @ApiModelProperty(value = "产品英文名称")
    @Size(max = 500, message = "产品英文名称长度不能超过500")
    private String enName;
    /**
     * 产品品牌
     */
    @ApiModelProperty(value = "产品品牌")
    @Size(max = 300, message = "产品品牌长度不能超过300")
    private String brand;
    /**
     * 产品品牌英文
     */
    @ApiModelProperty(value = "产品品牌英文")
    @Size(max = 300, message = "产品品牌英文长度不能超过300")
    private String enBrand;
    /**
     * 产品描述
     */
    @ApiModelProperty(value = "产品描述")
    @Size(max = 65535, message = "产品描述长度不能超过65,535")
    private String introduction;
    /**
     * 产品英文介绍
     */
    @ApiModelProperty(value = "产品英文介绍")
    @Size(max = 65535, message = "产品英文介绍长度不能超过65,535")
    private String enIntroduction;
    /**
     * 宣传视频
     */
    @ApiModelProperty(value = "宣传视频")
    @Size(max = 1024, message = "宣传视频长度不能超过1024")
    private String advertsVideo;
    /**
     * 宣传视频缩略图
     */
    @ApiModelProperty(value = "宣传视频缩略图")
    @Size(max = 1024, message = "宣传视频缩略图长度不能超过1024")
    private String advertsVideoImage;
    /**
     * 宣传图片
     */
    @ApiModelProperty(value = "宣传图片")
    @Size(max = 1024, message = "宣传图片长度不能超过1024")
    private String advertsImage;
    /**
     * 长图
     */
    @ApiModelProperty(value = "长图")
    @Size(max = 255, message = "长图长度不能超过255")
    private String longImge;
    /**
     * 封面图
     */
    @ApiModelProperty(value = "封面图")
    @Size(max = 1200, message = "封面图长度不能超过1200")
    private String icon;
    /**
     * 产品标识（新品、爆品）
     */
    @ApiModelProperty(value = "产品标识（新品、爆品）")
    @Size(max = 32, message = "产品标识（新品、爆品）长度不能超过32")
    private String mark;
    /**
     * 产品英文标识
     */
    @ApiModelProperty(value = "产品英文标识")
    @Size(max = 32, message = "产品英文标识长度不能超过32")
    private String enMark;
    /**
     * 网址
     */
    @ApiModelProperty(value = "网址")
    @Size(max = 255, message = "网址长度不能超过255")
    private String website;
    /**
     * 销售价格
     */
    @ApiModelProperty(value = "销售价格")
    private BigDecimal price;
    /**
     * 型号
     */
    @ApiModelProperty(value = "型号")
    @Size(max = 32, message = "型号长度不能超过32")
    private String model;
    /**
     * 尺寸规格
     */
    @ApiModelProperty(value = "尺寸规格")
    @Size(max = 512, message = "尺寸规格长度不能超过512")
    private String size;
    /**
     * 产品第一个首字母(大写)
     */
    @ApiModelProperty(value = "产品第一个首字母(大写)")
    @Size(max = 2, message = "产品第一个首字母(大写)长度不能超过2")
    private String initial;
    /**
     * 排序
     */
    @ApiModelProperty(value = "排序")
    private Integer sequence;
    /**
     * 产品标识
     */
    @ApiModelProperty(value = "产品标识")
    @Size(max = 32, message = "产品标识长度不能超过32")
    private String identification;
    /**
     * 产品英文标识
     */
    @ApiModelProperty(value = "产品英文标识")
    @Size(max = 32, message = "产品英文标识长度不能超过32")
    private String enIdentification;
    /**
     * 是否有定制服务
     */
    @ApiModelProperty(value = "是否有定制服务")
    private Integer isCustomizationServices;
    /**
     * 是否有现货
     */
    @ApiModelProperty(value = "是否有现货")
    private Integer isSpotTrading;
    /**
     * 可提供最小订货量
     */
    @ApiModelProperty(value = "可提供最小订货量")
    @Size(max = 50, message = "可提供最小订货量长度不能超过50")
    private String minOrderQuantity;
    /**
     * 条形码
     */
    @ApiModelProperty(value = "条形码")
    @Size(max = 32, message = "条形码长度不能超过32")
    private String varCode;
    /**
     * 可见范围,0全部可见，1仅客户池观众，2仅预登记观众可见，3仅客户池并且预登记观众可见
     */
    @ApiModelProperty(value = "可见范围,0全部可见，1仅客户池观众，2仅预登记观众可见，3仅客户池并且预登记观众可见")
    private Integer scope;
    /**
     * 是否生效(默认1：可用 0:不可用)
     */
    @ApiModelProperty(value = "是否生效(默认1：可用 0:不可用)")
    private Integer isEnabled;
    /**
     * 是否删除(默认0：未删除 1:已删除)
     */
    @ApiModelProperty(value = "是否删除(默认0：未删除 1:已删除)")
    private Integer isDeleted;

}
